Unicast and multicast are two well-known techniques for transmitting data packets between sources and receivers via a packet-switched network (hereinafter network). Unicast is a point-to-point communication technique in which data packets are transmitted between a single source and a single receiver. Multicast allows a source or several sources to transmit data packets simultaneously to select receivers, i.e., those receivers in a multicast group. During multicast transmission, data packets are replicated by multicast enabled routers at points within the network where the communication path diverges to separate receivers of a multicast group. In this fashion, multicast protocols deliver data to multiple receivers without burdening the source or consuming excessive network bandwidth.
There are several different multicast protocols including: protocol independent multicast-dense mode (PIM-DM), protocol independent multicast-sparse mode (PIM-SM), protocol independent source specific mode (PIM-SSM), etc. The PIM-SM protocol may be defined in internet engineering tasks force (IETF), Request for Comments (RFC) 2362 entitled, “Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification,” published in June 1998, and hereby incorporated by reference in its entirety. Subsequent revisions to this document are also incorporated herein by reference in their entirety. The PIM-SSM protocol may be defined in RFC 3569 entitled, “An Overview of Source Specific Multicast (SSM),” published in July 2003 and hereby incorporated by reference in its entirety. Subsequent revisions of this document are also incorporated herein by reference in their entirety.
Multicast groups are typically identified by multicast IP addresses. Multicast IP addresses typically fall in the class D range of the IPv4 address space. While the present invention will be described with reference to IPv4 address space, it should be noted that the present invention should not be limited thereto. Indeed, the present invention may find application in networks employing the IPv6 address space. A multicast source is a host that sends data packets with the destination IP address set to the multicast group IP address.
As noted above, multicast data packets are replicated by multicast enabled routers in networks at points where communication paths diverge to separate receivers of multicast groups. The communication path is known as a multicast distribution tree. Data flow through the multicast distribution tree is sometimes referenced in terms of upstream and downstream. Downstream is in the direction toward the receivers. Upstream is in the direction toward the source. Routers keep track of the incoming and outgoing interfaces for each multicast group, which is known as multicast forwarding state. The incoming interface of a router for a multicast group is sometimes referred to as the IIF. The outgoing interface lists within a router for a multicast group is sometimes referred to as the OIL.
Multicast routing involves a significant paradigm change from standard Unicast routing. In general, routers make Unicast routing decisions based on the destination IP address of a Unicast packet. When a Unicast packet arrives at a router, the router looks up the destination IP address of the data packet in its routing table. The routing table tells the router out from which interface to forward Unicast data packets for each destination IP address. In multicast, routers set up forwarding state in the opposite direction of Unicast, from receiver to the root (e.g., a source in PIM-SSM or a rendezvous point in PIM-SM) of the distribution tree. Routers perform a reverse path forwarding (RPF) check to determine the interface of the router that is topologically closest to the root of the distribution tree. RPF is a central concept in multicast routing. In an RPF check, the router looks in a routing table to determine the RPF interface for a multicast group, which is the router interface topologically closest to the root of the distribution tree for the multicast group. The RPF interface is the incoming interface for the multicast group.
FIG. 1 shows in block diagram form an exemplary network 10 employing multicast communication. Network 10 includes multicast enabled routers RA-RH coupled together via communication links (e.g., T1 lines) 12a-12k. Network 10 enables hosts 14a-14c on LAN 16a to communicate with hosts 14d-14f on LAN 16b. LANs 16a and 16b may employ Ethernet technology. Routers RF-RH are directly connected to and provide multi-access to LAN 16b. Routers RF-RH are examples of first hop or edge routers.
Each multi-access network (e.g., LAN 16b) has a designated router (DR), which performs several functions. For example, DRs operate to register sources at the rendezvous point (RP), join directly connected hosts to the root of a distribution tree as receivers of multicast group as will be more fully described below.
Edge routers RF-RH periodically send PIM hello messages directly or indirectly to each other. The primary purpose of the PIM hello messages is to announce each router's existence as a PIM router, so that routers RF-RH can decide on a single DR. Each PIM hello message may contain a configured DR priority number of the router sending the message. The router with the highest DR priority number is elected DR for LAN 16b. If any of the routers RF-RH do not support the DR priority option, the DR is the router with the highest IP address. For purposes of explanation, it will be presumed that router RF is the DR for LAN 16b. 
For purposes of explanation, presume host 14a sends data packets to multicast group GE1 as a source, and that host 14d seeks to join multicast group GE1 as a receiver. In general, hosts can join a multicast group as receivers using any one of many different internet group management protocols (IGMPs). To illustrate, host 14d can join multicast group GE1 by first generating an IGMP membership report in compliance with IGMPv1 or IGMPv2. The IP address of multicast group GE1 is included in the IGMP membership report generated by host 14d. It is noted that IGMP is the terminology used in IPv4. In IPv6, IGMP is referred to as multicast listener discovery (MLD).
The IGMP membership report is transmitted by host 14b to each of the edge routers RF-RH via LAN 16b. For purposes of explanation, it will be presumed that the distribution tree for multicast group GE1 has not been established through any of the edge routers RF-RH. In other words, multicast data packets for group GE1 are not transmitted to any host via LAN 16b before host 14d generates and transmits its IGMP membership report. Routers not elected DR drop the IGMP membership report. Thus, routers RG and RH drop the IGMP membership report transmitted by host 14d. Because router RF is the DR for LAN 16b, router RF uses a multicast routing protocol to join multicast group GE1 in response to receiving the IGMP membership report from host 14d. 
Depending on the multicast protocol employed in network 10, the root of the distribution tree is a source or a rendezvous point. For purposes of explanation, it will be presumed that network 10 employs PIM-SSM. As such, source 14a is the root of the distribution tree for multicast group GE1, and the IGMP membership report from host 14d includes the IP address for source 14a. To build a distribution tree or to build a branch on the distribution tree rooted at source 14a, DR router RF executes an RPF check by scanning its routing table for the IP address of source 14a contained in the IGMP membership report. The RPF check tells DR router RF which of its interfaces is closest to the source. DR router RF knows that multicast data packets from source 14a to multicast group GE1 should flow into router RF through its RPF interface.
DR router RF then generates and sends a PIM Join message out the RPF interface to inform the next router upstream that it wants to receive multicast data packets from source 14a that are destined for group GE1. IN PIM-SSM, the PIM Join includes the IP addresses of the source and multicast group. In the example, DR router RF sends a PIM Join message that includes the IP addresses of source 14a and multicast group GE1. The upstream router receiving the PIM Join message adds the interface on which it was received to the OIL for the multicast group GE1 and performs an RPF check using the IP address of source 14a. This upstream router sends a PIM Join message out of its RPF interface informing its upstream router that it wants to join the multicast group GE1. Each upstream router repeats this process of propagating PIM Joins out the RPF interface until this new branch of the distribution tree either (1) reaches the router directly connected to source 14a, or (2) reaches a router that already has multicast forwarding state for multicast group GE1. In this way, a new branch of the distribution tree is created to receiver 14d. Once this branch is created and each of the routers has forwarding state for the source-group pair, multicast data packets can flow down the distribution tree from source 14a to receiver 14d. 
Router RF is responsible for joining any host 14d-14f as a receiver for any multicast group since router RF is the DR on LAN14b. Further, because RF is the DR, multicast data packets for each multicast group joined by hosts on LAN 16b will flow through router RF. This could lead to overburdening the processing bandwidth of router RF, at least when compared to the processing bandwidth of routers RG and RH.
The use of the same reference symbols in different drawings indicates similar or identical items.